#define _CRT_SECURE_NO_WARNINGS
#include<iostream>

using namespace std;
const int N = 5e4 + 10;
int a[N] = { 0 };
int l, n, m;

int check(int x)
{
	int c = 0;
	for (int i = 0; i <= n;)
	{
		int j = i + 1;
		while (j <= n + 1 && a[j] - a[i] < x) j++;
		c += (j - i - 1);
		i = j;
	}
	return c;
}

int main()
{
	cin >> l >> n >> m;
	for (int i = 1; i <= n; i++) cin >> a[i];
	a[n + 1] = l;

	int left = 1, right = l;
	while (left < right)
	{
		int mid = left + (right - left + 1) / 2;
		int tmp = check(mid);
		if (check(mid) <= m) left = mid;
		else right = mid - 1;
	}
	cout << left << endl;
	return 0;
}